অ্যাজাক্স (Ajax)

HTTP Methods: GET এবং POST এর ভূমিকা

Web Development - অ্যাজাক্স (Ajax) - Ajax এর বেসিক কাজের প্রক্রিয়া (How Ajax Works) | NCTB BOOK

HTTP মেথড GET এবং POST হলো Ajax এবং ওয়েব ডেভেলপমেন্টের ক্ষেত্রে সবচেয়ে সাধারণ এবং গুরুত্বপূর্ণ মেথড। এই মেথডগুলো ওয়েব ব্রাউজার এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। Ajax এর মাধ্যমে GET এবং POST মেথড ব্যবহার করে সার্ভারের সাথে ডেটা পাঠানো এবং গ্রহণ করা হয়। নিচে GET এবং POST মেথডের ভূমিকা এবং তাদের মধ্যে পার্থক্য আলোচনা করা হলো:

১. HTTP GET মেথড:

ভূমিকা:

  • GET মেথড মূলত সার্ভার থেকে ডেটা আনার জন্য ব্যবহৃত হয়। এটি যখন ব্রাউজার বা ক্লায়েন্ট থেকে পাঠানো হয়, তখন সার্ভার সেই রিকোয়েস্টের রেসপন্স হিসেবে নির্দিষ্ট ডেটা বা রিসোর্স প্রদান করে।
  • GET মেথড URL এর মাধ্যমে ডেটা পাঠায়, অর্থাৎ ডেটা কুয়েরি স্ট্রিং হিসেবে URL এর অংশে যোগ করা হয়।

বৈশিষ্ট্য:

১. ডেটা পাঠানোর সীমাবদ্ধতা:

  • GET মেথডে URL এর মাধ্যমে ডেটা পাঠানো হয়, তাই এটি সাধারণত ছোট আকারের ডেটার জন্য উপযুক্ত। বেশিরভাগ ব্রাউজারে URL এর দৈর্ঘ্য সীমিত থাকে, তাই বড় ডেটা পাঠানোর জন্য GET মেথড ব্যবহার করা হয় না।

২. ক্যাশিং:

  • GET রিকোয়েস্ট সাধারণত ব্রাউজার দ্বারা ক্যাশ করা হয়, ফলে এটি দ্রুত এক্সেস করা যায়। উদাহরণস্বরূপ, যদি একটি ওয়েব পেজে একটি GET রিকোয়েস্ট করা হয়, তাহলে পরবর্তী সময়ে সেই একই রিকোয়েস্ট দ্রুত লোড হতে পারে কারণ এটি ক্যাশে সংরক্ষিত থাকে।

৩. সুরক্ষার দিক:

  • GET রিকোয়েস্টে URL এর মধ্যে ডেটা পাঠানো হয়, তাই এটি ব্রাউজারে দেখা যায় এবং তা URL হিস্টোরিতে থাকে। সংবেদনশীল বা প্রাইভেট ডেটা পাঠানোর জন্য GET মেথড নিরাপদ নয়।

৪. Idempotent Property:

  • GET মেথড একটি idempotent অপারেশন, অর্থাৎ একই GET রিকোয়েস্ট বারবার করলেও সার্ভারের রিসোর্সে কোনো পরিবর্তন আনে না। এটি শুধুমাত্র ডেটা পড়ার জন্য ব্যবহৃত হয়, পরিবর্তনের জন্য নয়।

উদাহরণ:

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://example.com/api/data?id=123", true);
xhr.send();

২. HTTP POST মেথড:

ভূমিকা:

  • POST মেথড সার্ভারে ডেটা পাঠানোর জন্য ব্যবহৃত হয়, বিশেষ করে যখন ক্লায়েন্টের পক্ষ থেকে সার্ভারে বড় পরিমাণ ডেটা বা সংবেদনশীল ডেটা পাঠাতে হয়। এটি সাধারণত ফর্ম সাবমিশনের ক্ষেত্রে ব্যবহৃত হয়।
  • POST মেথডে ডেটা request body এর মাধ্যমে পাঠানো হয়, যা URL এর বাইরে থাকে, ফলে এটি GET মেথডের তুলনায় বেশি নিরাপদ।

বৈশিষ্ট্য:

১. ডেটা পাঠানোর সীমাবদ্ধতা নেই:

  • POST মেথডে ডেটা request body তে পাঠানো হয়, তাই ডেটার আকারের কোনো সীমাবদ্ধতা নেই এবং এটি বড় ডেটা পাঠানোর জন্য উপযুক্ত।

২. নিরাপত্তা:

  • POST রিকোয়েস্টে ডেটা URL এর পরিবর্তে request body তে পাঠানো হয়, তাই ডেটা URL হিস্টোরিতে সংরক্ষিত হয় না এবং ব্রাউজারে দেখা যায় না। সংবেদনশীল তথ্য পাঠানোর জন্য POST মেথড নিরাপদ।

৩. Idempotent Property:

  • POST মেথড সাধারণত non-idempotent, অর্থাৎ একাধিকবার একই POST রিকোয়েস্ট পাঠালে সার্ভারের ডেটা বা রিসোর্সে পরিবর্তন ঘটতে পারে (যেমন, নতুন ডেটা সংরক্ষণ বা আপডেট করা)।

৪. ক্যাশিং:

  • সাধারণত POST রিকোয়েস্ট ক্যাশ করা হয় না, কারণ এটি পরিবর্তনশীল ডেটার জন্য ব্যবহৃত হয়। প্রতিবার POST রিকোয়েস্ট করলে নতুন রেসপন্স পাওয়া যায়।

উদাহরণ:

var xhr = new XMLHttpRequest();
xhr.open("POST", "https://example.com/api/data", true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(JSON.stringify({ name: "John", age: 30 }));

GET এবং POST মেথডের মধ্যে পার্থক্য:

বৈশিষ্ট্যGETPOST
ডেটা পাঠানোর উপায়URL এর কুয়েরি স্ট্রিং হিসেবে পাঠানো হয়।request body এর মাধ্যমে পাঠানো হয়।
ডেটার আকারের সীমাবদ্ধতাসাধারণত সীমিত (URL দৈর্ঘ্য অনুযায়ী)।বড় আকারের ডেটা পাঠানো সম্ভব।
নিরাপত্তাকম নিরাপদ (URL এ দেখা যায়)।বেশি নিরাপদ (ডেটা request body এ থাকে)।
ক্যাশিংব্রাউজার ক্যাশ করতে পারে।সাধারণত ক্যাশ করা হয় না।
Idempotent Propertyহ্যাঁ (একই রিকোয়েস্ট বারবার করলে ফলাফল একই)।না (একাধিকবার রিকোয়েস্ট করলে ফলাফল পরিবর্তিত হতে পারে)।

সারসংক্ষেপ:

  • GET মেথড: সাধারণত ডেটা রিড করার জন্য ব্যবহৃত হয়, যেখানে URL এর মাধ্যমে ছোট ডেটা পাঠানো হয় এবং এটি ক্যাশ করা যায়।
  • POST মেথড: ডেটা সার্ভারে পাঠানোর জন্য ব্যবহৃত হয়, বিশেষ করে যখন বড় আকারের ডেটা বা সংবেদনশীল তথ্য পাঠাতে হয়। এটি বেশি নিরাপদ এবং সাধারণত ক্যাশ করা হয় না।
Promotion